/*
 * seed.h
 *
 * header file for the SEED block cipher
 */

#ifndef __openstack_srtp_SEED_H
#define __openstack_srtp_SEED_H

#include "config.h"

#include "datatypes.h"
#include "gf2_8.h"

/* SEED internals */

/*
 * 16 rounds x 64 bit
 */
typedef v128_t seed_expanded_key_t[8];

void seed_expand_encryption_key(const v128_t *key, seed_expanded_key_t expanded_key);

void seed_expand_decryption_key(const v128_t *key, seed_expanded_key_t expanded_key); 

void seed_encrypt(v128_t *plaintext, const seed_expanded_key_t exp_key);

void seed_decrypt(v128_t *ciphertext, const seed_expanded_key_t exp_key);

#endif /* _AES_H */
